// vuex中计算数学

import {menus} from '@/router';
export default {
    isLogin(state){
        return !!(state.userInfo.adminname && state.userInfo.role && state.userInfo.token);
    },

    // 通过state.userInfo.checkedkeys = []  配合 menus(总的菜单)  => 生成用户的专属菜单
    authorityMenus(state){
        if(state.userInfo.role == 1)  return menus;

        let checkedkeys = state.userInfo.checkedkeys;
        console.log("checkedkeys",checkedkeys);
        let menusCopy = JSON.parse(JSON.stringify(menus)); //对象深拷贝( 对象是引用类型  -> 接下来的操作会影响原本的对象 -> 深拷贝)
        // console.log(11111, menusCopy, Array.isArray(menusCopy));
        var list = [];  // 用于存放新菜单的数组

        menusCopy.forEach(menu=>{ // 一级菜单
            var {path} = menu;
            if(checkedkeys.includes(path)){  // checkedKeys中有一级菜单 =>  a. 只有一级菜单,没有二级   b. 对于的二级菜单全部被选中
                list.push(menu);
            }else{  
                // checkedKeys中没一级菜单  =>  1. 该菜单以及其子菜单用户均不能访问   b. 用户只能访问子菜单下的部分内容
                var children = menu.children; // 没有一级菜单 => 还可以看二级菜单
                if(menu.children){
                    var subList = []; // 用于存放可以访问的二级菜单
                    // console.log(22222, children, Array.isArray(children));
                    children.forEach(subMenu=>{  // 二级菜单
                        var {path} = subMenu;
                        if(checkedkeys.includes(path)){  // checkedKeys中有一级菜单下的某个二级菜单 
                            subList.push(subMenu);
                        }
                    })
    
                    if(subList.length > 0){ // 用户只能访问子菜单下的部分内容
                        menu.children = subList;
                        list.push(menu);
                    }
                }

            }
        })
        // console.log(33333,list);

        return list;
    },
}